/*
PearReview - The peer review assistant.
Copyright (C) 2009  Dimitrij Pankratz, Anton Musichin
http://www.pearreview.com, info@pearreview.com

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

package com.pearreview.ui;

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;

import javax.swing.JPanel;

public class ImagePanel extends JPanel {
	
	private static final long serialVersionUID = -6738669855604677264L;
	
	private Image image = null;
	private boolean scale = true;
	
	public ImagePanel(Image image) {
		super();
        setImage(image);
        repaint();
    }

    public void paint(Graphics g) {
    	if (scale && image != null) {
    		g.drawImage(getImage(), 
    				0, 
    				0, 
    				this.getWidth(), 
    				this.getHeight(), 
    				this);
    		setPreferredSize(new Dimension(100, 100));
    		setSize(getPreferredSize());
    	} else if(image != null){
    		g.drawImage(getImage(), 
    				0, 
    				0, 
    				getImage().getWidth(this), 
    				getImage().getHeight(this), 
    				this);
    		setPreferredSize(new Dimension(getImage().getWidth(this),
    				getImage().getHeight(this)));
    		setSize(getPreferredSize());
    	}
    }
    
    public void setScale(boolean scale) {
    	this.scale = scale;
    	repaint();
    }
    
    public boolean isScale() {
    	return scale;
    }

	public void setImage(Image image) {
		this.image = image;
		repaint();
	}
	public Image getImage() {
		return image;
	}
}
